package com.siyougame.system.enums.social;

import cn.hutool.core.util.ArrayUtil;
import com.siyougame.common.core.StringArrayValuable;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 社交平台的类型枚举
 *
 * @author 芋道源码
 */
@Getter
@AllArgsConstructor
public enum SocialTypeEnum implements StringArrayValuable {


    /**
     * 微信开放平台 - 网站应用 PC 端扫码授权登录
     * 文档链接：https://justauth.wiki/guide/oauth/wechat_open/#_2-申请开发者资质认证
     */
    WECHAT_OPEN("WECHAT_OPEN", "WECHAT_OPEN");


    public static final List<String> ARRAYS = Arrays.stream(values()).map(SocialTypeEnum::getType).collect(Collectors.toList());

    /**
     * 类型
     */
    private final String type;
    /**
     * 类型的标识
     */
    private final String source;

    @Override
    public List<String> array() {
        return ARRAYS;

    }

    public static SocialTypeEnum valueOfType(String type) {
        return ArrayUtil.firstMatch(o -> o.getType().equals(type), values());
    }

}
